package com.atguigu.tingshu.account.mapper;

import com.atguigu.tingshu.model.account.UserAccount;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.math.BigDecimal;

@Mapper
public interface UserAccountMapper extends BaseMapper<UserAccount> {

    /**
     * 使用悲观锁查询用户账户并判断余额是否足够（for update）
     *
     * @param userId 用户ID
     * @param amount 需要扣减的金额
     * @return 用户账户（余额足够时才返回）
     */
    UserAccount selectForUpdateWithAmount(@Param("userId") Long userId, @Param("amount") BigDecimal amount);
}
